package org.opsli.modulars.business.iot.protocol;

import java.util.Map;

/**
 * @author sst
 * @version V1.0
 * @Package com.lysoft.monitoring.iot.protocol
 * @date 2019-08-22 14:29
 * 协议常量定义
 */
public class Constans {

    public static Map<String,Object> map;
    /**
     * 消息的开始信息标识
     */
    public static byte HEAD_DATA=0x55;

    /**
     * 消息的结束信息标识
     */
    public static byte TAIL=0x66;

    /**
     * 客户身份标识
     */
    public static byte IDENTIFY=0x03;

    /**
     * 校验和cs
     * @param Abyte
     * @return
     */
    public static byte Check_CS(byte[] Abyte)
    {
        byte result;
        try
        {
            int num = 0;
            for (int i = 0; i < Abyte.length; i++)
            {
                num = (num + Abyte[i]) % 256;
            }
            result = (byte)num;
        }
        catch(Exception e)
        {
            result = 0;
        }
        return result;
    }

    public static String hexToString(byte[] bytes,boolean flag){
        String str = "";
        for(int i=0;i<bytes.length;i++){
            int index = bytes[i];
            String hex = String.format("%02d", index);

            str+=hex+((flag)?" ":"");
        }
        return str;
    }

    public static void main(String[] args) {
//        String strHex = Integer.toHexString(122);
//        System.out.println(strHex);
//        byte[] bby = new byte[]{0x13,0x08,0x16,0x02,0x02,0x0a};
//            System.out.println(hexToString(bby,true));
//        for(DeviceType dt : DeviceType.values()){
//            System.out.println(dt.getValue());
//        }

//
//        byte[] bytes = new byte[56];
//        bytes[1]=0;
//        bytes[2]=56;
//        byte[] adderss = HexDump.hexStringToByteArray("041308140003");
//        System.arraycopy(adderss,0,bytes,3,adderss.length);
//        bytes[9]=Constans.IDENTIFY;
//        bytes[10]=(byte)0xf2;
//        bytes[11]=6;
//        for(int i=0;i<6;i++){
//            for(int j=0;j<6;j++){
//                bytes[12+(i*6)+j]=(byte)(i+j);
//            }
//        }
//        String currentTime = DateUtils.getDateFormat("YY-MM-dd-HH-mm-ss");
//        String[] arr = currentTime.split("-");
//        byte[] dates =new byte[arr.length];
//        for(int i=0;i<arr.length;i++){
//            dates[i] = (byte)Integer.parseInt(arr[i]);
//            bytes[47+i]=dates[i];
//        }
//        byte cs = Constans.Check_CS(bytes);
//        bytes[54] = cs;
//        bytes[0]=Constans.HEAD_DATA;
//        bytes[55] = Constans.TAIL;
//        System.out.println(HexDump.toHexString(bytes));
//
//        bytes = new byte[23];
//        bytes[1]=0;
//        bytes[2]=23;
//        System.arraycopy(adderss,0,bytes,3,adderss.length);
//        bytes[9]=Constans.IDENTIFY;
//        bytes[10]=(byte)0xf2;
//        bytes[11]=1;
//        bytes[12]=1;
//        currentTime = DateUtils.getDateFormat("YY-MM-dd-HH-mm-ss");
//        arr = currentTime.split("-");
//        dates =new byte[arr.length];
//        for(int i=0;i<arr.length;i++){
//            dates[i] = (byte)Integer.parseInt(arr[i]);
//            bytes[13+i]=dates[i];
//        }
//        cs = Constans.Check_CS(bytes);
//        bytes[21] = cs;
//        bytes[0]=Constans.HEAD_DATA;
//        bytes[22] = Constans.TAIL;
//        System.out.println(HexDump.toHexString(bytes));
        short sh = (short) 56;
        byte b = (byte)sh;
        System.out.println(HexDump.toHexString(b));
    }
}
